package com.bailian.system.service;

import java.util.List;
import com.bailian.system.domain.BlMyFavorite;

/**
 * 我的收藏Service接口
 * 
 * @author bailian
 * @date 2025-01-27
 */
public interface IBlMyFavoriteService 
{
    /**
     * 查询我的收藏
     * 
     * @param favoriteId 我的收藏主键
     * @return 我的收藏
     */
    public BlMyFavorite selectBlMyFavoriteByFavoriteId(Long favoriteId);

    /**
     * 查询我的收藏列表
     * 
     * @param blMyFavorite 我的收藏
     * @return 我的收藏集合
     */
    public List<BlMyFavorite> selectBlMyFavoriteList(BlMyFavorite blMyFavorite);

    /**
     * 新增我的收藏
     * 
     * @param blMyFavorite 我的收藏
     * @return 结果
     */
    public int insertBlMyFavorite(BlMyFavorite blMyFavorite);

    /**
     * 修改我的收藏
     * 
     * @param blMyFavorite 我的收藏
     * @return 结果
     */
    public int updateBlMyFavorite(BlMyFavorite blMyFavorite);

    /**
     * 批量删除我的收藏
     * 
     * @param favoriteIds 需要删除的我的收藏主键集合
     * @return 结果
     */
    public int deleteBlMyFavoriteByFavoriteIds(Long[] favoriteIds);

    /**
     * 删除我的收藏信息
     * 
     * @param favoriteId 我的收藏主键
     * @return 结果
     */
    public int deleteBlMyFavoriteByFavoriteId(Long favoriteId);

    /**
     * 添加收藏
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @param contentType 内容类型
     * @param title 标题
     * @param desc 说明
     * @return 结果
     */
    public int addFavorite(Long userId, Long contentId, Integer contentType, String title, String desc);

    /**
     * 取消收藏
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @param contentType 内容类型
     * @return 结果
     */
    public int cancelFavorite(Long userId, Long contentId, Integer contentType);

    /**
     * 检查是否已收藏
     * 
     * @param userId 用户ID
     * @param contentId 内容ID
     * @param contentType 内容类型
     * @return 是否已收藏
     */
    public boolean isFavorited(Long userId, Long contentId, Integer contentType);

    /**
     * 根据用户ID和内容类型查询收藏列表
     * 
     * @param userId 用户ID
     * @param contentType 内容类型
     * @return 收藏列表
     */
    public List<BlMyFavorite> selectByUserIdAndContentType(Long userId, Integer contentType);
} 